home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / tos_updt / fmcity / palcom / script / bt_toper.mx < prev   
Text File  |  1995-02-10  |  5KB  |  174 lines

  1. //--------------------------------------------------------------------------//
  2. //                        PALCOM V2.1 L10                        //
  3. //                               手動通信(通信画面)                            //
  4. //                                                                            //
  5. //                                        CopyRight(C) 1994/10/20                //
  6. //                                FUJITSU PERSONAL COMPUTER SYSTEMS LIMITED    //
  7. //                                        written by C-cube Soft H.Nakamura    //
  8. //--------------------------------------------------------------------------//
  9. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  10. //+++                      オープンイベントハンドラ                         +++//
  11. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  12. event    @OPEN.EXTERN    {
  13.     //通信バッファが0バイトの時は、処理をはじく
  14.     if( editor.getSize( 0 ) == 0 ) {
  15.         $saveXsize = dialog.getDefaultXSize();
  16.         dialog.setDefaultXSize( 278 );
  17.         sys.pushCursor( 80 );
  18.         $ret = dialog.ask(["━━━━━━  通信画面の操作  ━━━━━━",
  19.                            "",
  20.                            " 通信画面に、操作対象の文字がありません。 ",
  21.                            ""],["確認"] );
  22.         sys.popCursor();
  23.         dialog.setDefaultXSize( $saveXsize );
  24.         return;
  25.     }
  26.  
  27.     //ダイアログ部品の作成
  28.     $LogAllSaveId = dialog.makeButton( 1,     " 通信画面の保存(全部) ", -1,0);
  29.     $LogPartSaveId = dialog.makeButton( 1,     " 通信画面の保存(一部) ", -1,0);
  30.     $LogEraseId = dialog.makeButton( 1,"     通信画面の消去     ", -1,0x007F);
  31.     $TransOperEndId=dialog.makeButton(1,"         終  了         ",-1,0x801D);
  32.     $DefaultId = $LogAllSaveId;
  33.  
  34.     $DialogList = [ "通信画面の操作" , 0 , -1 , -1 , $DefaultId ,
  35.                     [ "" , $LogAllSaveId, [0] , [""] , [""] ],
  36.                     [ "" , $LogEraseId    , [0] , [""] , [""] ],
  37.                     [ "" , $TransOperEndId    , [0] , [""] , [""] ]
  38.                   ] ;
  39.  
  40.     //エディタが表示されていれば退避する
  41.     if(editor.show?() == #TRUE) {
  42.         editor.show(#FALSE);
  43.         $EditShowFlag = 1;
  44.     }
  45.     else {
  46.         $EditShowFlag = 0;
  47.     }
  48.  
  49.     //現在のダイアログの幅を退避
  50.     $dialogXsize = dialog.getDefaultXSize();
  51.  
  52.     //メインループ
  53.     loop {
  54.         //通信画面の保存の全部/一部の切り分け
  55.         if($$SELECTED) {
  56.             $wkList = list.getNth($DialogList, 6);
  57.             list.delNth($wkList, 2);
  58.             list.putNth($wkList, 1, $LogPartSaveId);
  59.         }
  60.         else {
  61.             $wkList = list.getNth($DialogList, 6);
  62.             list.delNth($wkList, 2);
  63.             list.putNth($wkList, 1, $LogAllSaveId);
  64.         }
  65.  
  66.         //ダイアログの表示
  67.         dialog.setDefaultXSize(180);
  68.  
  69.         //マウスカ-ソルの復元
  70.         sys.popCursor();
  71.  
  72.         dialog.open( $DialogList );
  73.  
  74.         //マウスカ-ソルの復元
  75.         sys.pushCursor(81);
  76.  
  77.         dialog.setDefaultXSize($dialogXsize);
  78.  
  79.         //ダイアログの復帰値を取得する
  80.         $ReturnId = list.get1st( $$DIALOG.RETURN );
  81.         table( $ReturnId ) {
  82.             $LogAllSaveId    {local.logSave();}
  83.             $LogPartSaveId    {local.logSave();}
  84.             $LogEraseId        {local.logErase();}
  85.             $TransOperEndId    {exit;}
  86.             else            {exit;}
  87.         }
  88.         if( ($ReturnId == $TransOperEndId) || ($ReturnId < 0) ) {
  89.             exit;
  90.         }
  91.         if( $ReturnId == $LogEraseId ) {
  92.             exit;
  93.         }
  94.         list.delNth($DialogList, 5);
  95.         list.putNth($DialogList, 4, $ReturnId);
  96.     }
  97.  
  98.     //ボタンの削除
  99.     dialog.delButton( $LogAllSaveId ) ;
  100.     dialog.delButton( $LogPartSaveId ) ;
  101.     dialog.delButton( $LogEraseId ) ;
  102.     dialog.delButton( $TransOperEndId ) ;
  103.  
  104.     //エディタが表示してあったら復元する
  105.     if($EditShowFlag == 1) {
  106.         editor.show(#TRUE);
  107.     }
  108.  
  109.     return;
  110. }
  111. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  112. //+++                      クローズイベントハンドラ                         +++//
  113. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  114. event    @CLOSE.EXTERN {
  115.     return;
  116. }
  117. event    @ERROR    {
  118.     local.errorFunc();
  119.     event.mainLoop();
  120. }
  121. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  122. //+++                                内部関数                             +++//
  123. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  124. //-------------------------//
  125. //---    通信画面の保存    ---//
  126. //-------------------------//
  127. function    local.logSave() {
  128.     //ファイル格納ダイアログの表示
  129.     $InitDir = "";
  130.     $DefaultName = file.autoName(file.getCurrent(), 0);
  131.     $wkList = str.split($DefaultName, "\\");
  132.     $DefaultName = list.getLast($wkList);
  133.     list.delLast($wkList);
  134.     $InitDir = str.join($wkList, "\\");
  135.     if($$SELECTED) {            //Max: 14 Byte
  136.         $Title = "選択内容保存";
  137.     }
  138.     else {
  139.         $Title = "通信内容保存";
  140.     }
  141.     $OkButton = "";        //Max:  8 Byte
  142.     $CanButton = "";    //Max:  8 Byte
  143.     //マウスの復元
  144.     sys.popCursor();
  145.     //ファイル選択ダイアログ表示
  146. //test.print( $InitDir );
  147.     $SaveFile = dialog.saveFile($InitDir, $DefaultName, "",
  148.                                      $Title, $OkButton, $CanButton);
  149.     //マウスの変更
  150.     sys.pushCursor(81);
  151.     //実行ならば保存する
  152.     if( $SaveFile != #FALSE ) {
  153.         if($$SELECTED) {
  154.             editor.saveSelection( list.get1st( $SaveFile ),
  155.                                   list.getNth( $SaveFile, 2 ));
  156.         }
  157.         else {
  158.             editor.save( list.get1st( $SaveFile ),
  159.                          list.getNth( $SaveFile, 2 ));
  160.         }
  161.     }
  162.  
  163.     return;
  164. }
  165. //-------------------------//
  166. //---    通信画面の消去    ---//
  167. //-------------------------//
  168. function    local.logErase() {
  169.     //通信画面のクリア
  170.     editor.clear();
  171.  
  172.     return;
  173. }
  174.